async function async1() {
  console.log('AAAA');
  console.log(await async2());
  console.log('BBBB');
  return 'UUUU';
}
async function async2() {
  return 'YYYY';
  // console.log('CCCC');
}
console.log('DDDD');
setTimeout(function () {
  console.log('FFFF');
}, 0);
console.log(async1());
new Promise(function (resolve) {
  console.log('GGGG');
  resolve();
}).then(function () {
  console.log('HHHH');
});
console.log('IIII');
